package cn.shiro.shiroservice.moudle.db.mapper;

import cn.shiro.shiroservice.moudle.db.pojo.dto.TableStructureDTO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * &#064;Time 2024 一月 星期三 22:32
 *
 * @author ShangGuan
 */
@Mapper
public interface DataBaseMapper {

    /**
     * 获取数据库版本
     *
     * @return {@link String}
     */

    String getDataBaseVersion();


    /**
     * 显示数据库
     *
     * @return {@link List}<{@link String}>
     */

    List<String> showDatabase();

    /**
     * 显示表格
     *
     * @return {@link List}<{@link String}>
     */

    List<String> showTables();




    /**
     * 获取表结构
     *
     * @param tableName 表名称
     * @return {@link List}<{@link TableStructureDTO}>
     */

    List<TableStructureDTO> getTableStructure(@Param("tableName") String tableName);


    /**
     * 全部查询当前数据库信息
     *
     * @param tableName 表名称
     * @return {@link List}<{@link Object}>
     */

    @MapKey("id")
    List<Map<String,Object>> selectTable(@Param("tableName") String tableName);
}
